@L}5 _$% l0$)$$Hȱ$ UhL" `e$$%`$%`  R@P!( L(1   Y I`  d  Ld M * @  $ % CC$$)%1 Udߥ$9%: !0 S$% DD˙`  }J)Lr d M * @  $ % CC$$)%1 Udߥ$9%: !0 S$%} DD˙`  }J)Lr J  ((  p L ()   J}L= ( L 0q A    IB JC;? D W } LL  ` W )LA!  ߰")-݆ p" } $G@LL 08`Q")<2Q0 -G$Ș݆ UL# ; p8(()(0ʥ)NQ` }$GȘ݆LU )L ݆ L GȘ ݆LL )W>Z   HH)H }p h  hyhy D L> L JJ    ! LA*` BF }7'8  M HN H` 8 Z  \LdJJ!"! GFE@F (!L }EE !E^ ^ E E7EȩEdE/EȩE  D } .L }  ;F d  ;?F7F? ( .   Z D LL d } . D  L    p  E` , d)  D L) 0BM݊L݉} ML  N݆ L NLML [ TEqEHȱEqEh 0Gȹ G} HLL GɛL  LFREE SECTORS G) *Gȩ GȽG GȌ*jj >G} C8jJ3j2CD( C202C ԠBX` N 1? l LlD:RAMDISK}.COMLu L1 L ;LHL  T`  `1  ɐ     `TU  } L ? .  t`GBJ ~DEHI B V0dV!}QDEHI VF9 ,0 ,0 s0hhL  L` H hDHEh"}DEL8HI4 0 HI,0 0  9 .G VLO#},0 L4*IJ`llD1:AUTORUN.SYSNEED MEM.SAV TO LOAD THIS FILE.D1:MEM.SAV J y08 B|DEHI$} V0 0`B;DEL`?<0LV`@ʆ v s? F0Ξ05: [ BDEHI%} VY8 B V  @  /DE `E:D1:DUP.SYSERROR-SAVING USER MEMORY ON DISKTYPE Y TO &}STILL RUN DOS B;DE J  (` 9 V⪍ ઍ  -'}LLu ÝDEHILV 9 .l 9 .l  `` s$B BH(}I|DE V BLV nB,DE JLV B V BLVDEIʩ BꭝLu  } 3E:}DISK OPERATING SYSTEM II VERSION COPYRIGHT 1984 ATARI CORP.A. DISK DIRECTORY I. FORMAT DISKB. RUN CARTRIDG*}E J. DUPLICATE DISKC. COPY FILE K. BINARY SAVED. DELETE FILE(S) L. BINARY LOADE. RENAME FILE M. RUN AT ADDRES+}SF. LOCK FILE N. CREATE MEM.SAVG. UNLOCK FILE O. DUPLICATE FILEH. WRITE DOS FILES P. FORMAT SINGLEL !N',}#"&))9(&*)/h)''-&؆莟R'S  vL/ˢ L }Insert DOS 2.0s, type Y Λx -}DEfHI 1莏#q! @ y0ɛ8A0,' ȅ 1 1ild! 1L!NO SUCH ITEMSELECT.} ITEM OR FOR MENU! 0 .z:*{}.|{ 1 0 0JB 18L%|DL/}%DIRECTORY--SEARCH SPEC,LIST FILE?[# 0 0 &|D3" 1L!NOT A DISK FILEN !B 1L!E# 1 !BD0}ED:}:1BJ|DE 1DEBHI 1 h0ߢ 0.1}  0?詛 1 y0YЛ 1 ;#L" ;#L! BL1TYPE "Y" TO DELETE...DELETE FILE SPEC2}COPY--FROM, TO?OPTION NOT ALLOWED736 FREE SECTORS COPYING---D1:DIRECK.COMl# 0|D .L/%#3}##JB|DE 1BHID#E 1#0: B 1L!#͑### B 1#c$0SY4}S1}:## # # .#Ƚ# # 𩛙## 1,#PD#ELJ- <.BJD#E 5}1 1HH 0hh|DL%1}:̳# L% #D#EL% 1 0 . .0O% 1L!WILD CARDS NOT A6}LLOWED IN DESTINATION 0 <.|K}N 2 FORMAT. t* 5) 1L!`) 0NΞ 0 L1) 1 L!BAD LOAD FILELOAD FROM WHAT FILE?) 0 ?}0#B 1L!WHAT FILE TO LOCK?) 0 0$B 1L!WHAT FILE TO UNLOCK?DUP DISK-SOURCE,DEST DRIVES?TYPE "Y" IF OK TO US@}E PROGRAM AREACAUTION: A "Y" INVALIDATES MEM.SAV.FE! +L1   `*  70 2 2A} 0.* 1 y0 0)INSERT BOTH DISKS, TYPE RETURN^, 1 y038逍 N, 1L! ,B}C, t*  Lx+, 0 ^, 1 y0 , ,0,0 ,L+ ,I0 ,Vǭ0C}Ξ, 0 }, 1 y0C,ШC, 0K'!" H H 'h h Lx+!EF 5L1L!D,I,HhD}` NOT ENOUGH ROOMINSERT SOURCE DISK,TYPE RETURNINSERT DESTINATION DISK,TYPE RETURNE}`  `8 rL1`-* 1P* 1 y0Y`hhL!NAME OF FILE TO MOVE?- 0 0|DL% <.F},^ 1 70 0 .@L# .BJ 1  DEHIB V L1 ,} 1 70,L.  G}JB|,#P#DE 1 HI BDEHHII 1 B 1 ,^ 1 70,0La- B V,#PH},^ 1 70 0L#L!-* 1P* 1 y0Yj383}mm ݭI}}`8}``|* ? ɛ,`|:-)| / 1L!`DESTINATION CANT BE DOJ}S.SYS0 0H{ 24Δ 28/L!/) 2 Π 2 0 ξK}hAΞB,0 J 1 BDEHI,HÝDE 1HIHIDELSAVE-GIVE L}FILE,START,END(,INIT,RUN)O S0 1`BDEPHI V` S0H 1 L!M}0 0 1L~0`PLEASE TYPE 1 LETTER,0`hhL! 70 1L0L<1 ,;ɛ7,"ɛ:ݦ1ݥN}A"D|ݤD|ȩ:|ȩ|ɛ,,(/+.ީ1 1,ɛ`轤{NAMEO} TOO LONG B VL!` L1I H1EΝDL1|mDiE` V0`8d/8 i:222 1 LP}!ERROR- 138ɛ+,' 20*.. өr2 1``2TOO MANY DIGITSINVALID HEXAQ}DECIMAL PARAMETER800 0 8 00`,0'D800 H,ɛh`2L1NEED D1 THRU D8uR} ECIMAL PARAMETER800 0 8 00`,0'D800 H,ɛh`2L1NEED D1 THRU D8u_zd`D:ATZMODE.CNFE:˭̭ͥRΥjLf` B VxЍX өjBD`E J VT}/xϩ`ХXѥYҢϑϑϝ"/X`U}NNNNNNNNNNNNFFVFFVFFVFFVNNNVFVVFFVV}FVVFVFBVVVVVFFFFFFFFW}c by,arry"lackHHX}HHHY}HH!nZ}!tari)mplementationofthe:modem0rotocol[}.ow\},oading````` dL`  lll /R0ѭ1ҥˍ͍̍΍$]}H%Ip  01 :HI B} V"/ J  cc   : d_  ϫL}b ^}cc cHH dhL}b c8 `[ cT Z cA cFN cN Hcc_} ذ ٥ h c c D c:0:1:d c c L~aDL}b bmcmcɛ  `} ϫL}b c`` dL}b`` c8`````i``i` `` `` cLa}a `LahhH dhɈL}b_ ` _ dE b,篭- b &cLci LR˄̩b}͠ #`ȹHչHe̅ԐՠHȱԨhi,Ș-heͅԐheՅՠHȱԨhi Ș c Yc} c0  Y`i^HiH  `hhԠɊȱH iLbP?@ P!@d}U` c ɛ` c cɛ)_`BLVc` cLNbH chLNbh` Lc LTpҠ˄Ϭ̩8̢e}i@ @@Z |  ! LvBvvvvީvv #ppBsBBf}A````````````Z Ze̅ A 謩18 g};< w  Lv Lv ؤLv 4 LK8Lv ^u_v Lt L8 98 rLh}IH 2L  ɀh )͍ ƦL h 1 L L!i 1 L Lji}4 1 L 38L! >Lk 1 LlLšmLšH ƦhLš j} Ʀ Ʀˠ H8 h Ʀ Ʀ  ƦLƢ kLv Ʀ  )T  )U L k}c8 򆎠ɛ0)\/.A )_[ Z0:c8 ɝc 0c 0  S0L0 l} ϫ0 (0 謩58L0 ϫLJ # U 謩9 ̣LH h8TU U9:T`Hm}e͍Șm芍3 ̣hLw0000008Lƣ 8 Åԩ ةԩ ײ) n}Lq /0 L * *` )_AB 8AJ`` J 0 80K`  )`LȄJo}0آML ]֝LLL` Ʀ  )TȄJ`ޢUT ]HhUhT` p}> 68LȌ hhLi` >LL}"ad#2#` H78 ] Ʀh I ABH CD`hq}滌XY```06`˦̄͆Ό` B3DEHI VLJ` u ue`r}0g :)880`` `H8 h8 ` 0i'i0`IHM`MIIH.IHI!HIII`4imeouts}`ꩦ > ū)H hLI LLx80) eiC訊iL:rqinit`:rinit`:sinit`:ack`:filet}`:skip`:nak`:abort`:finish`:repos`:data`:eof`:ferr`:crc`:challng`:complet`:cancel`:freecnt`:commanu}d`:stderr` K ƦIT HU``x  ei訊i ͍΍`ԅՆ ٢ آ轀ɀ0v}8 8頙ȩ`L````````` ۨ`hhhhLLiLICxXYw}*XЬ# @0! 0*֩8` ! 0 H`HH` U LA ꪭ̈́΍x}`8 @ L ( B V U LLA 88 8LA y}L LI 38LHȢh 9:LLI 8LLiLi3aving`0@`8 & >  ꪢ0˥ z}8˨ B VCL)1ԩ ݩԩ ݭԩ ݭԭ ٭ f ة2ԩ ײ{}2)2 `8TUmTmUi` ֱ ֱ / #  謭89LB ALBi > ۨ :|}) :) `:synch`L``ED`IH` ūx*X* @$ BLV BLVHB}}hJK V` \ ۭ) A _ ϫAǢr $ B V L 0 Lꯢ ~}     LWError accessing R: device.ݛ  ( "$[HA JKh}B VAL`&Zՠ ߬`xԅՆ֩שseօ֐נ` LX`0 LO**B0000000010000 }000K:R1:D1:FILENAME.EXT򍺍쿳垝}倴󀳴}󁀍㉀쀭x𩭢 Ӯ Ӯ2} Ӯ( ӮX`ԅթ`B;AÍ덑* \L:;͗LAc}LbL/R '01R} گ :"/ҩl э}ȱэHI \L:L JZ 謢 ۨ0LH Z? 3 L頌鯬}Z~ } گ+L AL 뱬 گZ~ ֱЬ  L頭:L)?:}I L> bL8ZI Z L!L%/LO  I L8 Li@}` L9I L LI !L( I !L ±0̱d:e   Ld8 I}ɚ`2350:123456789 H BhH Vh` BLV䩢ԩթ֩נ H֑hֈ``H h} ;LZ GLZ J pL LL[  [ 謭[8 ei訊i LL}LZLLթ ةթԠ0 )ߑ(` í`` } s`` 뱬015)0: 謩!)_ ;L ``"`x}0:ȍi`Gɛi`G쩀G@٩ڢ֑ڢ(+ э01X BJ V}L B  V0J00 L]|  a8 و ֊eمِL$Li ِ}iِ` S ` n  گ 8ٰLԩ՘eمץiؠԑi(ِ`!}|٠ ٥i ِ i``:2esume` ϫ`J >0˥ @ B VH0HmImi}hɈ` õLc0 õ0c ϫ` 謩* ֱ ֱLpppB@AѵD1 :*.* }ABQRDOT 8>/(: 怤値뀤"ad0k}t`!tar : -odemc by,arry"lackQRRRRRRRRRREQRRRRRRRRE|}4ranslation||/verwrite||"audrate||!uto:start||$uplex||2esume-ode|ZRRRRR}RRRRRRRRRRRRCZRRRRRRRRRRRRRRRRRCQRRRRRR퀣RRRRRRE|}1uitto$/3||ܽ)ncrement"uffer3ize||ݽ$ecrement"uffer3ize||$isk}$irectories|ZRRRRRRRRRRRRRRRRRRRRRRRRRRRRRCQRRRR}RRRRE| 4ranslation /verwrite|| "aud2ate !uto:start|| $uplex 1uit}to$/3|| )ncrease"uff $ecrease"uff|| $ownload$n 2esume-ode|ZRRRRRRRRRRRRRRRRRRRRRRRRRRRR}RRRRC|ZRRRRRRRRRRRRRRRRRRRRRRRRRRRRX2400 ;Baud rate Ascii ;TranslationFull ;DuplexOn ;Auto ZstartOff ;Overwrite35 ;Buffer size (K)D8: } ;Default DL driveD:RS232.COM; R: handler ;DuplexOn ;Auto ZstartOff ;Overwrite35 ;Buffer size (K)D8: / ATAR-Z-MODEM 1.2 An Atari Implementation of the Zmodem Protoco}l (c)1994 by Larry Black --------------------- WHAT IS ATAR-Z-MODEM? }--------------------- Atar-Z-Modem (referred to as 'Z' from this point on within this documentation) is a Sh}areware implementation of the receive portion of the Zmodem Protocol for the Atari 8-bit computers. Although 'Z' is not} designed as a 'self-contained' terminal program, its main purpose and intent is to be used as an external receive p}rotocol; specifically in conjunction with BobTerm terminal program written by Bob Puff. 'Z' should run on an}y Atari computer that will also run BobTerm. It has been tested with various Disk Operating Systems (DOS), including } the following: Atari DOS 2.0s & 2.5; Spartados 3.2d; Mydos 4.5; SmartDOS 8.2; TOP-DOS 1.5+; Mach DOS 3.7a. Lock-ups di}d occur with SuperDOS 4.4, for unknown reasons. In order to get the maximum use from 'Z' as a functional Zmodem pro}tocol, it does use the cartridge area however. This is the memory area from $A000 to $BC1F. I believe SpartaDOS X u}sers have a 'need to know' of this info. -------------------- CONFIGURING YOUR 'Z' --------------------} Although 'Z' will operate in some cases without a configuration file, you still need to create one so that '}Z' will know what default options you prefer to run it with. The configuration file, ATZMODE.CNF, is a simple text }file containing these default options that best suit you and your system's needs. Configuration is really quite sim}ple. Load ATZMODE.CNF into a text editor or word processor and edit the default setting to fit your circumstances. Here }is what your configuration file might look like: -------------------------------------- 24 ;Baud rate (o}r 30 12 48 96 19) ASCII ;Translation (or ATARI) FULL ;Duplex (or HALF) ON ;Auto Zstart (or OFF) } ON ;Overwrite filename (or OFF) 35 ;Buffer size in Kilobytes D8: ;Default DL drive (D: - D9:) D}:RS232.COM ;R: software handler file -------------------------------------- BAUD RATE Baud rate may be} entered with first two digits or full baud rate. i.e. 96 or 9600. Page -1- } Atar-Z-Modem 1.2 TRANSLATION Translation default can be set to Atari (no t}ranslation) or Ascii (light translation). DUPLEX Duplex can be set to default either to Full Duplex or} Half Duplex. AUTO ZSTART Auto Zstart OFF would require user to press the [SELECT] console key to begi}n file transfer. ON will start transfer automatically; needing no user interaction. OVERWRITE FILENAME } Overwrite filename ON would delete any existing file on user designated download disk that exactly matches the filename} being received. Overwrite OFF would SKIP a file that matched the filename on user designated download disk. } BUFFER SIZE Buffer size minimum is 1K; maximum varies with DOS configuration and low memory pointers. If a l}arger number than maximum buffer size is entered in the configuration file, then 'Z' will set the buffer size to it}s maximum. Most DOS will permit approximately 30-kilobytes in the buffer. Smaller than maximum size may or may not be re}quired if excessive time is required to save the entire buffer to floppy disk. Although highly unlikely, it is poss}ible that some of the poorer written Zmodem send protocols might time-out during a long buffer dump to disk, thus a}borting the transfer. If this situation should occur with a particular system, consider setting disk write with verify o}ff. Refer to your particular DOS manual on how to turn disk write verify off. Another option is to experiment with }smaller buffer sizes. Then set your default buffer to a size that you found to be most reliable. DEFAULT DOWN}LOAD DRIVE Default download drive could be any drive from D1: to D9: or even D:. D: would select the default driv}e for Mydos and SpartaDOS X, which could be a sub-directory within a hard drive. Should your system not req}uire a modem handler loaded from disk by BobTerm, then type spaces over the 'D:' in front of the RS232.COM name, so} that 'Z' will not attempt to load an R: handler from disk. More on handlers later. All of the above defaults, ex}cept for the handler filename, can be changed from the keyboard once 'Z' has been loaded. After you have entered }all your default settings, save the text file as ATZMODE.CNF on the default disk for your system, or drive 1 if you } are not using Mydos or SpartaDOS X. DO NOT SAVE ANY PRINTER CODES WITH THE FILE. } Page -2- Atar-Z-Modem 1.2 HANDLER If you use an MIO, Black} Box, or 850 Interface, you will NOT need a disk handler with 'Z'. Space over the 'D:' in the handler filename in y}our configuration file, as previously mentioned. If you require a disk handler (D:RS232.COM), for running BobTer}m, then you will need the same handler for 'Z'. There are some versions of the P:R: that 'Z' will load its }ROM handler from, while yet other versions require the 12 sector PRC.SYS handler from the P:R: software disk. Whate}ver handler you use with BobTerm, will work with 'Z' as well. One problem was found with a borrowed Atari 1}030 modem when loading the XM.COM handler file. Whenever the handler was loaded while connected with another modem }(on-line), the modem disconnected (NO CARRIER). This is most likely a quirk of the XM.COM handler itself but would }preclude loading and using 'Z' while on-line with the 1030 modem. It may also apply to the XM301 modems, but has not bee}n tested. Those modem types are better off using Xmodem at 300 baud anyway. The turnaround time after a CRC error o}r any other error at 300 baud using the Zmodem protocol can be devastating. --------------- MODIFY}ING Z.COM --------------- If you want Z.COM to load the ATZMODE.CNF file from a ramdisk or drive other }than "D:" then you will have to modify the main program, using TextPRO. Let's assume you want to copy Z.COM }and ATZMODE.CNF to your ramdisk, D8:, and then load it from there. First load TextPRO and then load Z.COM into the }TextPRO buffer. Do not use other word processors or editors as they may change some characters during the save. } 1. On the top line you will see the name of the configuration file, D:ATZMODE.CNF, followed by TWO Atari EOL (Return)} characters. Place the cursor over the colon and insert an '8' so it reads D8:ATZMODE.CNF 2. Place the c}ursor over the EOL (Return) character following the filename. Delete one of the Return characters with CTRL_Delete. By } adding an '8' and deleting one Return character, you have not changed the length of the file. 3. Save the} modified file to disk with CTRL_S. Suggest you use a different name like Z8.COM to indicate you modified it to read the} config file from drive 8. Page -3- Atar}-Z-Modem 1.2 Textpro will indicate the file length is unchanged by turning the status line to green when you pr}ess CTRL_S to save the file. If the status line does not turn green, then you should start over since the file size} has been changed. -------------------- HOW TO LOAD YOUR 'Z' -------------------- 'Z' is th}e external Zmodem receive protocol. In addition to the protocol, it contains a 'no-frills' terminal mode and a Help Menu} of key commands. 'Z' is NOT intended to be used as a full featured terminal program. Its design and nature is to p}ermit you to select filenames for download, reply to prompts and to log off the system at the completion of file tr}ansfer(s). Use BobTerm as your terminal program for dialing, log-on macros, word wrap, capture, and all the} other 'goodies'. You'll not find a better featured and well written terminal program. Trust me! But should you des}ire to download files using the Zmodem protocol, you may do so at any point. Quit to DOS from the BobTerm command menu a}nd binary load 'Z' from your DOS menu or prompt. You will be in the Terminal mode. Check the two status lines at th}e top of the screen to insure you have the correct baud rate, duplex, and translation settings. --------}----------- HOW TO USE YOUR 'Z' ------------------- The [HELP] key or [SHIFT_CTRL_SPACE] keys will dis}play the Help Menu of key commands. Here are the [SHIFT_CTRL] key combinations used in the Terminal Mode: } SHIFT_CTRL Function D ...... Duplex (Full/Half toggle) F ...... Translation (Ascii/Atari) } O ...... Overwrite filename ON/OFF Q ...... Quit to DOS R ...... Resume Mode ON/OFF toggle S .}..... Speed (Baud 300 to 19.2K) = .(dn). Decrease buffer size 1K - .(up). Increase buffer size 1K 1-}9 ...... Receive to drive D1:-D9: 0 ...... Receive to default D: [RETURN].... Auto Zstart ON/OFF toggle [S}PACE] .... Commands List [HELP] Menu Only from the HELP menu, can you access the disk directory function, u}sing the keys 0-9. Pressing 0 reads the directory of D:*.*, the default drive for Mydos and SpartaDOS X, or drive 1 for }other DOS. Pressing [ESC] from the directory screen returns to terminal mode.Any other key returns back to the Help} Menu. Page -4- Atar-Z-Modem 1.2 CONSO}LE KEYS: [HELP] ..... Commands List HELP Menu [SELECT] ... Begin File Transfers (if Auto Zstart is off) }[START] .... ABORT File Transfer [OPTION] ... not used There are single-key commands in the Help menu that }substitute for the [SHIFT_CTRL] keys used in the Terminal Mode. Try the various key options on the Help Menu and wa}tch the status lines at the top of the screen to see the effect. Pressing the [ESC] or [RETURN] key exits you from }the Help Menu to the Terminal mode. It is important that you have pre-set the destination drive number. Zmo}dem is a batch file transfer, making it very easy to fill a disk with files, causing a disk-full error. 'Z' does NOT che}ck to see if adequate disk space is available for the next file. Make sure you have sufficient free sectors on your} save disk for the files you have selected to transfer. Changing destination drive is done simply by pressing [SHIF}T+CTRL] and the desired drive number. It can be done at any point, PRIOR to file transfer, from either the Help Menu or }the Terminal screen. Zmodem, similarly with Ymodem, is a batch file protocol. Both use the '1-block' m}ethod to send filename, file length, file date and other valuable information. That is where the similarities stop }though. With 'Z', once the files have been selected from the sender's system, file transfer will begin automatically if }you have Auto Zstart selected (an "A" is displayed at the box on the far left of the second status line). If the bo}x is blank, then you must press [SELECT] to begin file transfer; just like with BobTerm. You may ask why not just h}ave Auto Zstart on with no user option. In some of the more 'rare' occasion, the autostart sequence that Zmodem uses, ma}y be passed erroneously, thereby beginning file transfer accidently. I have yet to find this occurence, but have he}ard of it happening. FILE TRANSFER DISPLAYS When file transfer begins, most of the screen will blank,} except for a few lines at the top of the screen. These lines contains indication of transfer status, and is mostly} for user consumption. The other parts of the screen were blanked to speed up receiver processing. Since this is th}e heart of the program, time is essential and blanking the screen provides the extra time needed. Here are what those } indicators are: Dev:filename and file size are displayed on the first line of the File Transfer screen. }The next line has "Stat:" "Pkt Len:" and "Save". Page -5- } Atar-Z-Modem 1.2 "Stat:" indicates any number of keywords, informing you of the 'Status' }of the transfer while it occurs. Here are some of the more common ones: Zinit - An indicator to the sender,} that it is ready to begin a Zmodem session. Zfile - Receiving file information data. Zack - Acknowledge  }(ack). This occurs at two points, only one of which will be visible to you. Its more common occurence is post buffer  } dumps. The less common occurence it prior to increasing the packet length (more on that later). Znak - Not ack }nowledge (nak). Normally an error during Zinit and Zfile blocks. Zrepos - Reposition string telling the sender wh }ere to begin resending its data; normally at the start of file (0) or after a CRC error. Zdata - Actual fil }e data being received. Just following the "Zdata" display is a single space where the data is being 'echoed' as they are} being received. This is just to let you know that everything is working, especially if you have a modem that does }not have status lights such as "RD" for receive data indicator. Zsynch - Synchronize in actuality is a purge of u}nwanted incoming data, until the sender stops the stream so that a Zrepos command can be sent back to resume data f}low. This occurs when receiving from a sender that has NOT followed the Zmodem specifications, and IGNORES the buff}er-size request from the receiver. In this case, 'Z' will send a stop sequence (CAN CAN) before dumping the buffer to di}sk. If sender has a large modem output buffer, it may still be spewing the contents of its buffer when you are read}y to resume the next segment of the file. Zsynch purges the extraneous data until the sender stops. Zferr - File} error. It's followed by the error number, i.e. Zferr162 for disk full error. Zfinish- End of Session. } There are many others, including Zabort, Zskip, Zchall, etc. but you get the idea. "Pkt Len:" is the len}gth or size of each "packet" of data. <256 means less than 256 bytes being sent between checksums. Maximum length i}s dependent on baud rate and frequency of checksum errors encountered. Normally, 1024 (1K) byte packets are the maximum }at 9600 baud or below. I don't have 19.2K baud, but Zmodem specifications state 2048 (2K) is maximum packet length }at higher speeds. In many of the zmodem implementations, a Zack response is required prior to raising the packet le}ngth size. This is the 'silent Zack' that you never see, and is sent while receiving the next packet. This follows }the Zmodem specifications as well. Don't confuse Packets with "Blocks" that Xmodem and Ymodem use. Packets do not stop f}or acknowledgment, while Blocks do. Packets are merely an indicator of how many bytes are being sent between checks}ums. Page -6- Atar-Z-Modem 1.2 "Sa}ve" is the number of bytes actually saved to disk. It is updated each time a buffer dump to disk occurs. Compare it to t }he bytes in the file "Size:" block on the screen to see how much progress is being made. ZMODEM RESUME !} Starting with version 1.2, 'Z' now supports the RESUME function, which is one of the most powerful options of"} the Zmodem protocol. The RESUME option is used mostly for continuing a file transfer in the event of only getting #}a partial file. A partial file can be as a result of an abort for various reasons; including a disk full error, dro$}pped carrier, timeout limitation, etc. Some may have noticed that on previous releases of 'Z', that the files from parti%}al transfers were not deleted or erased. This is to allow for the RESUME option to be implemented. In the case of p&}artial file saves, ONLY the part of the file that has successfully matched the CRC checksum, will be saved. Any par'}t of the file that may have been received, but could not be verified by a CRC checksum, is discarded. This is to insure (}file integrity and accuracy for a possible RESUME of the file. To select a RESUME of a partial file, press the [SH)}IFT_CTRL] R keys in combination from Terminal Mode, or R from the Help Menu. An 'R' at the top left of the first st*}atus line (same place as the 'O' for Overwrite appears) will signify when RESUME is in effect. With RESUME on, the +}Overwrite option becomes moot, and selection of overwrite on or off will not be acted upon. ONLY use RESUME to continue ,}partial files. Deselect RESUME for any other type of file transferring. Make sure your default download drive is se-}lected to where the partial file is. Do NOT rename a partial file for ANY reason, if you wish to later resume it. .} When you are prompted from the sender which file you wish to download, enter the same filename you had when origina/}lly downloading the file. If all criteria that was previously mentioned is met, then the transfer will resume at th0}e same place it was aborted at. Upon completion of the resume, you should have the file complete and intact. 1}There are a few limitations with the RESUME function, in conjunction with the Atari computer. If you are downloading to 2}a ramdisk or hard drive, these limitations would not be of any concern, and should be used whenever available. Some3} limitation may exist with the Happy or USDoubler, but only on extremely large file. Same will hold true with the X4}F551 drive when high speed I/O is in effect. Should you not have high speed drives or drives in slow mode, then limitati5}on of the size of the file to be resumed may have an effect of the success or failure of a partial file resume. Thi6}s is due to 'Z' reading the partial file, to get the EXACT file length for positioning, and then reopened for Appen7}d. If too much time is spent while the drive is reading the file, it will timeout and abort. All I can offer in this typ8}e of situation, is to copy the partial file to a faster device, such as a ramdisk or hard drive. In most ca9}ses, the RESUME function will get the remainder of that partial transfer; giving you the complete file without having to:} download the entire thing all over again. Page -7- ;} Atar-Z-Modem 1.2 In a case of large files and slow drives, RESUME may not work due to the structure of the<} Atari computers Operating System. In which case all I can offer in the form of assistance is my condolence. =} ILLEGAL FILENAME CHARACTERS I try to keep 'Z' as optionally functional without regard to the DOS type >}an individual may prefer. With this fact in mind, 'Z' will rename any and all illegal filename characters to the letter ?}"Z". I used the standard AtariDOS 2.5 as a guideline, since it has the more conservative file naming method. So if @}you selected to download a file named F-14.GIF for example, then 'Z' would rename it to FZ14.GIF; replacing the dasA}h character with the Z character. In the event you get an entire file, rename it to suit your particular DOS filename B} capabilities and your own personal preference. In the event you only get a partial file, do NOT rename it, until you C}have a successful RESUME of the file. ---------- CONCLUSION ---------- I would liD}ke to conclude this documentation with a bit of how I began to write 'Z'. As anyone who knows me will tell you, I own twE}o computer types, and am not partial to either. My first computer was the Atari, and I acquired a clone later on asF} the years went by. To this day, I have both on the same desk, setting side by side, and at times, communicating fiG}les to one another via null modem. I program in assembly language on both computer types, and enjoy the both of them H} immensely. I began hearing the moaning and groaning from fellow Atarians, asking why it was impossible for the Atari tI}o use the Zmodem protocol. This got my curiosity up. I wanted to know for sure, that it was totally impossible, befJ}ore giving in to those that either didn't know or didn't care to know, and was just shooting off at the mouth. So IK} got as much information concerning the inner workings of the protocol itself, and began to study. And study, and study L}some more. To my amazement, I found out that what I was hearing about Zmodem and the Atari, were somewhat 'half-truM}ths', but only barely. Here is my conclusion. Zmodem was designed for the computer types with UART chips. To those N}that don't know what that means, it means the computer can do Disk AND Modem Input and Output at the same time. The AtarO}i does NOT have a UART chip, but communicates to its peripheral devices using the SEMAPHORE method. Semaphore meaniP}ng one BIT at a time, to one device at a time. Although the Atari does not have the UART chip, it is still an amaziQ}ng computer. With the hindsight that the founder of the Zmodem protocol (Chuck Forsberg) had, he added a bit to the R} protocol that allows those computers that cannot do disk and modem I/O at the same time, allowances for buffer size, UAS}RT capability, etc. I decided to try and tackle a Zmodem receive, using this new found knowledge, just to prove to T}myself that it could be done. 'Z' is the result of those efforts. I am still learning about my U} Page -8- Atar-Z-Modem 1.2 computers. I think that's what has kept meV} interested in them and continues to do so. I hope you enjoy using 'Z' as much as I have enjoyed writing it. W} Special thanks go to Frank Walters, for whom this program would never had seen the light of day. X}If you find 'Z' useful, interesting, radically different or just can't plain stand it, then a donation of $5 dollars wouY}ld show to me that there is a public interest in this area, and more powerful updated versions would ensue. Z} Send any/all donations, compliments, complaints and other "hob-knobing" to: Larry Black 23[}37 Douglas Rd. Panama City, FL 32405-5902 ---------------------- DISCLAIMER DIS\}CLAIMER ---------------------- Atar-Z-Modem, 'Z', Larry Black or any affiliated beta tester, cannot and]} will not be help liable or responsible for the actions of the user and this program. Other than occupying disk space, t^}here is no guarantee or warranty, either written or implied of its use. By using this program or any affiliated par_}ts thereof, the user understands and agrees to these terms, and said user takes sole and explicit responsibility of`} its use and actions. "You can't teach an old dog, new tricks." (Unknown) "And they said it couldn't bea} done..." (Larry Black-1994) b} Page -9- > History.Doc ------------- Version 1.0 Released 04/03/94;First release-------------------d}------------------Version 1.1 Interim Beta release 05/01/94;Fixed a bug in the filename CRC checking.----------------e}---------------------Version 1.2 Released 05/29/94;Added the RESUME function.;Added filename checking for illegal charf}acters.;Fixed bug in internal PR: rom handler loading.dded the RESUME function.;Added filename checking for illegal char: Filenames for ATAR-Z-MODEM Archive Z.COM -Binary Load fileATZMODE.DOC-Documentation file ATZMODE.CNF-Sample cq}B%DOS SYSB*)DUP SYSBHSAUTORUN SYSBATZMODE CNFBATZMODE DOCBcHISTORY DOCBgREAD ME BHuZ COMonfiguration file READ.ME -This filename explainationHISTORY.DOC-History of Ataz-Z-Modem-----------------------------r}----------Below is a listing of BBS/Terminal software and protocol selections found to support the receiver's buffer size fs}lags. This listing will grow as reports continue. QUICKBBSTBBSRENEGADELORA-BBSLYNCDSZZCOMMMOBYTURBOWINt}DOWED ZMODEMTELIXRIPTERMTERMINATEs continue. QUICKBBSTBBSRENEGADELORA-BBSLYNCDSZZCOMMMOBYTURBOWIN&_zd`D:ATZMODE.CNFE:˭̭ͥRΥjLf` B VxЍX өjBD`E J Vv}/xϩ`ХXѥYҢϑϑϝ"/X`w}NNNNNNNNNNNNFFVFFVFFVFFVNNNVFVVFFVx}FVVFVFBVVVVVFFFFFFFFy}c by,arry"lackHHz}HHH{}HH!n|}!tari)mplementationofthe:modem0rotocol}}.ow~},oading````` dL`  lll /R0ѭ1ҥˍ͍̍΍$}H%Ip  01 :HI B} V"/ J  cc   : d_  ϫL}b }cc cHH dhL}b c8 `[ cT Z cA cFN cN Hcc} ذ ٥ h c c D c:0:1:d c c L~aDL}b bmcmcɛ  } ϫL}b c`` dL}b`` c8`````i``i` `` `` cL}a `LahhH dhɈL}b_ ` _ dE b,篭- b &cLci LR˄̩}͠ #`ȹHչHe̅ԐՠHȱԨhi,Ș-heͅԐheՅՠHȱԨhi Ș c Y} c0  Y`i^HiH  `hhԠɊȱH iLbP?@ P!@}U` c ɛ` c cɛ)_`BLVc` cLNbH chLNbh` Lc LTpҠ˄Ϭ̩8̢}i@ @@Z |  ! LvBvvvvީvv #ppBsBB}A````````````Z Ze̅ A 謩18 };< w  Lv Lv ؤLv 4 LK8Lv ^u_v Lt L8 98 rL}IH 2L  ɀh )͍ ƦL h 1 L L!i 1 L Lj}4 1 L 38L! >Lk 1 LlLšmLšH ƦhLš } Ʀ Ʀˠ H8 h Ʀ Ʀ  ƦLƢ kLv Ʀ  )T  )U L }c8 򆎠ɛ0)\/.A )_[ Z0:c8 ɝc 0c 0  S0L0 } ϫ0 (0 謩58L0 ϫLJ # U 謩9 ̣LH h8TU U9:T`H}e͍Șm芍3 ̣hLw0000008Lƣ 8 Åԩ ةԩ ײ) }Lq /0 L * *` )_AB 8AJ`` J 0 80K`  )`LȄJ}0آML ]֝LLL` Ʀ  )TȄJ`ޢUT ]HhUhT` }> 68LȌ hhLi` >LL}"ad#2#` H78 ] Ʀh I ABH CD`h}滌XY```06`˦̄͆Ό` B3DEHI VLJ` u ue`}0g :)880`` `H8 h8 ` 0i'i0`IHM`MIIH.IHI!HIII`4imeout}`ꩦ > ū)H hLI LLx80) eiC訊iL:rqinit`:rinit`:sinit`:ack`:file}`:skip`:nak`:abort`:finish`:repos`:data`:eof`:ferr`:crc`:challng`:complet`:cancel`:freecnt`:comman}d`:stderr` K ƦIT HU``x  ei訊i ͍΍`ԅՆ ٢ آ轀ɀ0}8 8頙ȩ`L````````` ۨ`hhhhLLiLICxXY}*XЬ# @0! 0*֩8` ! 0 H`HH` U LA ꪭ̈́΍}`8 @ L ( B V U LLA 88 8LA }L LI 38LHȢh 9:LLI 8LLiLi3aving`0@`8 & >  ꪢ0˥ }8˨ B VCL)1ԩ ݩԩ ݭԩ ݭԭ ٭ f ة2ԩ ײ}2)2 `8TUmTmUi` ֱ ֱ / #  謭89LB ALBi > ۨ :}) :) `:synch`L``ED`IH` ūx*X* @$ BLV BLVHB}hJK V` \ ۭ) A _ ϫAǢr $ B V L 0 Lꯢ }     LWError accessing R: device.ݛ  ( "$[HA JKh}B VAL`&Zՠ ߬`xԅՆ֩שseօ֐נ` LX`0 LO**B0000000010000 }000K:R1:D1:FILENAME.EXT򍺍쿳垝}倴󀳴}󁀍㉀쀭x𩭢 Ӯ Ӯ2} Ӯ( ӮX`ԅթ`B;AÍ덑* \L:;͗LAc}LbL/R '01R} گ :"/ҩl э}ȱэHI \L:L JZ 謢 ۨ0LH Z? 3 L頌鯬}Z~ } گ+L AL 뱬 گZ~ ֱЬ  L頭:L)?:}I L> bL8ZI Z L!L%/LO  I L8 Li@}` L9I L LI !L( I !L ±0̱d:e   Ld8 I}ɚ`2350:123456789 H BhH Vh` BLV䩢ԩթ֩נ H֑hֈ``H h} ;LZ GLZ J pL LL[  [ 謭[8 ei訊i LL}LZLLթ ةթԠ0 )ߑ(` í`` } s`` 뱬015)0: 謩!)_ ;L ``"`x}0:ȍi`Gɛi`G쩀G@٩ڢ֑ڢ(+ э01X BJ V}L B  V0J00 L]|  a8 و ֊eمِL$Li ِ}iِ` S ` n  گ 8ٰLԩ՘eمץiؠԑi(ِ`!}|٠ ٥i ِ i``:2esume` ϫ`J >0˥ @ B VH0HmImi}hɈ` õLc0 õ0c ϫ` 謩* ֱ ֱLpppB@AѵD1 :*.* }ABQRDOT 8>/(: 怤値뀤"ad0k}t`!tar : -odemc by,arry"lackQRRRRRRRRRREQRRRRRRRRE|}4ranslation||/verwrite||"audrate||!uto:start||$uplex||2esume-ode|ZRRRRR}RRRRRRRRRRRRCZRRRRRRRRRRRRRRRRRCQRRRRRR퀣RRRRRRE|}1uitto$/3||ܽ)ncrement"uffer3ize||ݽ$ecrement"uffer3ize||$isk}$irectories|ZRRRRRRRRRRRRRRRRRRRRRRRRRRRRRCQRRRR}RRRRE| 4ranslation /verwrite|| "aud2ate !uto:start|| $uplex 1uit}to$/3|| )ncrease"uff $ecrease"uff|| $ownload$n 2esume-ode|ZRRRRRRRRRRRRRRRRRRRRRRRRRRRR}RRRRC|ZRRRRRRRRRRRRRRRRRRRRRRRRRRRRX